﻿using System.Diagnostics;

namespace JetBlack.Services
{
    /// <summary>
    /// An interface for a server that can be managed with the given methods and properties.
    /// </summary>
    public interface IManageableServer
    {
        /// <summary>
        /// Start the server with the given arguments.
        /// </summary>
        /// <param name="args">The startup command arguments.</param>
        void Start(string[] args);

        /// <summary>
        /// Stop the server.
        /// </summary>
        void Stop();

        /// <summary>
        /// Pause the activity of the server.
        /// </summary>
        void Pause();

        /// <summary>
        /// Resume the activity of a server.
        /// </summary>
        void Resume();

        /// <summary>
        /// The logger.
        /// </summary>
        TraceSource TraceSource { get; }
    }
}
